from ReaderFile import TxtFileReader, JsonFileReader
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts

# 读取一月、二月的数据，通过对象存储
txtFileReader = TxtFileReader()
jsonFileReader = JsonFileReader()
# 一月订单数据
jan_order_list = txtFileReader.read_file('D:\\其他学习\\python学习\\python黑马课堂资料\\资料\\第13章资料\\2011年1月销售数据.txt')
# 二月订单数据
feb_order_list = jsonFileReader.read_file('D:\\其他学习\\python学习\\python黑马课堂资料\\资料\\第13章资料\\2011年2月销售数据JSON.txt')

# 将一月的数据按日汇总累计
for feb_order_content in feb_order_list:
    jan_order_list.append(feb_order_content)

"""
date:2011-01-01, order_id:4b34218c-9f37-4e66-b33e-327ecd5fb897, amount:1689, province:湖南省
date:2011-01-01, order_id:5b6a6417-9a16-4243-9704-255719074bff, amount:2353, province:河北省
date:2011-01-01, order_id:ae240260-68a9-4e59-b4c9-206be4c08a8d, amount:2565, province:湖北省
date:2011-01-01, order_id:c833e851-880f-4e05-9de5-b547f5ffc5e1, amount:2877, province:山东省
date:2011-01-01, order_id:dd27e822-884c-4d20-a309-986f6a90e2b9, amount:947, province:安徽省
以月份为key, 累计amount的值，通过字典类型进行存储 key：月份 value：金额

结果：
{'2011-01-01': 59242.0, '2011-01-02': 58479.0}
"""
jan_dict = {}
for jan_order_content in jan_order_list:
    # jan_order_content是一个Order对象
    date = jan_order_content.date
    amount = float(jan_order_content.amount)
    try:
        jan_dict[date] += amount
    except:
        jan_dict[date] = amount

# 生成柱状图
bar = Bar()
bar.add_xaxis(list(jan_dict.keys()))
bar.add_yaxis(series_name='一月各省份数据',
              y_axis=list(jan_dict.values()),
              label_opts=LabelOpts(is_show=False))

bar.render()
